/**
 给你一根长度为 n 的绳子，请把绳子剪成整数长度的 m 段（m、n都是整数，n>1并且m>1），
 每段绳子的长度记为 k[0],k[1]...k[m-1] 。请问 k[0]*k[1]*...*k[m-1] 可能的最大乘积是多少？例如，当绳子的长度是8时，
 我们把它剪成长度分别为2、3、3的三段，此时得到的最大乘积是18。
 */

/**
* @param {number} n
* @return {number}
*/

/**
 *
 * @param {*} n 绳子的长度
 * @param j 减掉的长度
 * @param dp[i] 长度为i时候的最大值
 * 长度为i的绳子 乘积：j(i - j) 如果(i - j)还需要剪，乘积就等于dp[i - j] * j
 * 取最大值。Math.max((i - j) * j, dp[i - j] * j)
 * @returns
 */
// var cuttingRope = function (n) {
//   let dp = new Array(n + 1).fill(0)
//   dp[2] = 1
//   dp[3] = 2
//   for (let i = 3; i <= n; i++) {
//     for (let j = 1; j < i; j++) {
//       dp[i] = Math.max(dp[i], Math.max((i - j) * j, dp[i - j] * j))
//     }
//   }
//   return dp[n]
// };

// cuttingRope(10)

/**
 * 贪心算法 n = 2, max = 1 * 1;
 * n = 3, max = 2 * 1
 * n = 4, max = 2 * 2
 * n = 5, max = 3 * 2
 * n = 6, max = 3 * 3
 * n = 7, max = 3 * 2 * 2/ 3 * 4
 * n = 8, max = 3 * 3 * 2
 * 判断出啥，第一优先：级遇3拿3， 第二优先级：遇2拿2
 * n = 4的时候就可以不用剪了,因为 2 * 2和直接乘4是一样的
 */

// var cuttingRope = function (n) {
//   let res = 1
//   if (n < 4) {
//     return n - 1
//   }
//   while (n > 4) {
//     res *= 3
//     n -= 3
//   }
//   console.log(res * n);
//   return res * n
// };

function a(param) {
  const { cell, pass, varify } = { ...param }
  console.log(cell, pass, varify);
}

const params = {
  cell: '123',
  varify: '321'
}
a(params)
// cuttingRope(10)